home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Developer Essentials / MPW Interfaces & Libraries / PInterfaces / Menus.p < prev    next >
Encoding:
Text File  |  1992-01-29  |  5.2 KB  |  185 lines  |  [TEXT/MPS ]

  1.  
  2. {
  3. Created: Tuesday, September 17, 1991 at 1:57 PM
  4.  Menus.p
  5.  Pascal Interface to the Macintosh Libraries
  6.  
  7.   Copyright Apple Computer, Inc. 1985-1991
  8.   All rights reserved
  9. }
  10.  
  11.  
  12. {$IFC UNDEFINED UsingIncludes}
  13. {$SETC UsingIncludes := 0}
  14. {$ENDC}
  15.  
  16. {$IFC NOT UsingIncludes}
  17.  UNIT Menus;
  18.  INTERFACE
  19. {$ENDC}
  20.  
  21. {$IFC UNDEFINED UsingMenus}
  22. {$SETC UsingMenus := 1}
  23.  
  24. {$I+}
  25. {$SETC MenusIncludes := UsingIncludes}
  26. {$SETC UsingIncludes := 1}
  27. {$IFC UNDEFINED UsingQuickdraw}
  28. {$I $$Shell(PInterfaces)Quickdraw.p}
  29. {$ENDC}
  30. {$SETC UsingIncludes := MenusIncludes}
  31.  
  32. CONST
  33. noMark = 0;                            {mark symbol for MarkItem}
  34.  
  35. { menu defProc messages }
  36. mDrawMsg = 0;
  37. mChooseMsg = 1;
  38. mSizeMsg = 2;
  39. mDrawItemMsg = 4;
  40. mCalcItemMsg = 5;
  41. textMenuProc = 0;
  42. hMenuCmd = 27;                        {itemCmd == 0x001B ==> hierarchical menu}
  43. hierMenu = -1;                        {a hierarchical menu - for InsertMenu call}
  44. mPopUpMsg = 3;                        {menu defProc messages - place yourself}
  45. mctAllItems = -98;                    {search for all Items for the given ID}
  46. mctLastIDIndic = -99;                {last color table entry has this in ID field}
  47.  
  48. TYPE
  49. MenuPtr = ^MenuInfo;
  50. MenuHandle = ^MenuPtr;
  51. MenuInfo = RECORD
  52.  menuID: INTEGER;
  53.  menuWidth: INTEGER;
  54.  menuHeight: INTEGER;
  55.  menuProc: Handle;
  56.  enableFlags: LONGINT;
  57.  menuData: Str255;
  58.  END;
  59.  
  60. MCEntryPtr = ^MCEntry;
  61. MCEntry = RECORD
  62.  mctID: INTEGER;                    {menu ID.  ID = 0 is the menu bar}
  63.  mctItem: INTEGER;                    {menu Item. Item = 0 is a title}
  64.  mctRGB1: RGBColor;                    {usage depends on ID and Item}
  65.  mctRGB2: RGBColor;                    {usage depends on ID and Item}
  66.  mctRGB3: RGBColor;                    {usage depends on ID and Item}
  67.  mctRGB4: RGBColor;                    {usage depends on ID and Item}
  68.  mctReserved: INTEGER;                {reserved for internal use}
  69.  END;
  70.  
  71.  
  72. MCTablePtr = ^MCTable;
  73. MCTableHandle = ^MCTablePtr;
  74.  
  75. MCTable = ARRAY [0..0] OF MCEntry;    { the entries themselves }
  76.  
  77. MenuCRsrcPtr = ^MenuCRsrc;
  78. MenuCRsrcHandle = ^MenuCRsrcPtr;
  79. MenuCRsrc = RECORD
  80.  numEntries: INTEGER;                {number of entries}
  81.  mcEntryRecs: MCTable;                {ARRAY [1..numEntries] of MCEntry}
  82.  END;
  83.  
  84.  
  85. PROCEDURE InitMenus;
  86.  INLINE $A930;
  87. FUNCTION NewMenu(menuID: INTEGER;menuTitle: Str255): MenuHandle;
  88.  INLINE $A931;
  89. FUNCTION GetMenu(resourceID: INTEGER): MenuHandle;
  90.  INLINE $A9BF;
  91. PROCEDURE DisposeMenu(theMenu: MenuHandle);
  92.  INLINE $A932;
  93. PROCEDURE AppendMenu(menu: MenuHandle;data: Str255);
  94.  INLINE $A933;
  95. PROCEDURE AddResMenu(theMenu: MenuHandle;theType: ResType);
  96.  INLINE $A94D;
  97. PROCEDURE InsertResMenu(theMenu: MenuHandle;theType: ResType;afterItem: INTEGER);
  98.  INLINE $A951;
  99. PROCEDURE InsertMenu(theMenu: MenuHandle;beforeID: INTEGER);
  100.  INLINE $A935;
  101. PROCEDURE DrawMenuBar;
  102.  INLINE $A937;
  103. PROCEDURE InvalMenuBar;
  104.  INLINE $A81D;
  105. PROCEDURE DeleteMenu(menuID: INTEGER);
  106.  INLINE $A936;
  107. PROCEDURE ClearMenuBar;
  108.  INLINE $A934;
  109. FUNCTION GetNewMBar(menuBarID: INTEGER): Handle;
  110.  INLINE $A9C0;
  111. FUNCTION GetMenuBar: Handle;
  112.  INLINE $A93B;
  113. PROCEDURE SetMenuBar(menuList: Handle);
  114.  INLINE $A93C;
  115. PROCEDURE InsMenuItem(theMenu: MenuHandle;itemString: Str255;afterItem: INTEGER);
  116.  INLINE $A826;
  117. PROCEDURE DelMenuItem(theMenu: MenuHandle;item: INTEGER);
  118.  INLINE $A952;
  119. FUNCTION MenuKey(ch: CHAR): LONGINT;
  120.  INLINE $A93E;
  121. PROCEDURE HiliteMenu(menuID: INTEGER);
  122.  INLINE $A938;
  123. PROCEDURE SetItem(theMenu: MenuHandle;item: INTEGER;itemString: Str255);
  124.  INLINE $A947;
  125. PROCEDURE GetItem(theMenu: MenuHandle;item: INTEGER;VAR itemString: Str255);
  126.  INLINE $A946;
  127. PROCEDURE DisableItem(theMenu: MenuHandle;item: INTEGER);
  128.  INLINE $A93A;
  129. PROCEDURE EnableItem(theMenu: MenuHandle;item: INTEGER);
  130.  INLINE $A939;
  131. PROCEDURE CheckItem(theMenu: MenuHandle;item: INTEGER;checked: BOOLEAN);
  132.  INLINE $A945;
  133. PROCEDURE SetItemMark(theMenu: MenuHandle;item: INTEGER;markChar: CHAR);
  134.  INLINE $A944;
  135. PROCEDURE GetItemMark(theMenu: MenuHandle;item: INTEGER;VAR markChar: CHAR);
  136.  INLINE $A943;
  137. PROCEDURE SetItemIcon(theMenu: MenuHandle;item: INTEGER;iconIndex: Byte);
  138.  INLINE $A940;
  139. PROCEDURE GetItemIcon(theMenu: MenuHandle;item: INTEGER;VAR iconIndex: Byte);
  140.  INLINE $A93F;
  141. PROCEDURE SetItemStyle(theMenu: MenuHandle;item: INTEGER;chStyle: Style);
  142.  INLINE $A942;
  143. PROCEDURE GetItemStyle(theMenu: MenuHandle;item: INTEGER;VAR chStyle: Style);
  144. PROCEDURE CalcMenuSize(theMenu: MenuHandle);
  145.  INLINE $A948;
  146. FUNCTION CountMItems(theMenu: MenuHandle): INTEGER;
  147.  INLINE $A950;
  148. FUNCTION GetMHandle(menuID: INTEGER): MenuHandle;
  149.  INLINE $A949;
  150. PROCEDURE FlashMenuBar(menuID: INTEGER);
  151.  INLINE $A94C;
  152. PROCEDURE SetMenuFlash(count: INTEGER);
  153.  INLINE $A94A;
  154. FUNCTION MenuSelect(startPt: Point): LONGINT;
  155.  INLINE $A93D;
  156. PROCEDURE InitProcMenu(resID: INTEGER);
  157.  INLINE $A808;
  158. PROCEDURE GetItemCmd(theMenu: MenuHandle;item: INTEGER;VAR cmdChar: CHAR);
  159.  INLINE $A84E;
  160. PROCEDURE SetItemCmd(theMenu: MenuHandle;item: INTEGER;cmdChar: CHAR);
  161.  INLINE $A84F;
  162. FUNCTION PopUpMenuSelect(menu: MenuHandle;top: INTEGER;left: INTEGER;popUpItem: INTEGER): LONGINT;
  163.  INLINE $A80B;
  164. FUNCTION MenuChoice: LONGINT;
  165.  INLINE $AA66;
  166. PROCEDURE DelMCEntries(menuID: INTEGER;menuItem: INTEGER);
  167.  INLINE $AA60;
  168. FUNCTION GetMCInfo: MCTableHandle;
  169.  INLINE $AA61;
  170. PROCEDURE SetMCInfo(menuCTbl: MCTableHandle);
  171.  INLINE $AA62;
  172. PROCEDURE DispMCInfo(menuCTbl: MCTableHandle);
  173.  INLINE $AA63;
  174. FUNCTION GetMCEntry(menuID: INTEGER;menuItem: INTEGER): MCEntryPtr;
  175.  INLINE $AA64;
  176. PROCEDURE SetMCEntries(numEntries: INTEGER;menuCEntries: MCTablePtr);
  177.  INLINE $AA65;
  178.  
  179. {$ENDC} { UsingMenus }
  180.  
  181. {$IFC NOT UsingIncludes}
  182.  END.
  183. {$ENDC}
  184.  
  185.